package ejb.searchEngine;

import java.util.List;

import ejb.dto.ExcursionDTO;
import ejb.dto.FlightDTO;
import ejb.dto.HotelDTO;
import ejb.dto.PackageDTO;
import ejb.dto.SearchDTO;

public interface PackageSearch {

	/**
	 * Return sample Packages
	 * @return sample Packages
	 */
	List<PackageDTO> getSamplePackages();

	/**
	 * Return list of PackageDTO filtered by <code>searchParameters</code>
	 * @param searchParameters
	 * @return list of PackageDTO
	 */
	List<PackageDTO> searchByParameters(SearchDTO searchParameters);

	/**
	 * Return all available ExcursionDTO of Package identified by <code>packageId</code>
	 * @param packageId
	 * @param allResults
	 * @return all available ExcursionDTO of one Package
	 */
	List<ExcursionDTO> getAvailableExcursions(int packageId, boolean allResults);
	
	/**
	 * Return all available HotelDTO of Package identified by <code>packageId</code>
	 * @param packageId
	 * @param allResults
	 * @return all available HotelDTO of one Package
	 */
	List<HotelDTO> getAvailableHotels(int packageId, boolean allResults);

	/**
	 * Return all available depart FlightDTO of Package identified by <code>packageId</code>
	 * @param packageId
	 * @param allResults
	 * @return all available depart FlightDTO of one Package
	 */
	List<FlightDTO> getFlightsTo(int packageId, boolean allResults);

	/**
	 * Return all available return FlightDTO of Package identified by <code>packageId</code>
	 * @param packageId
	 * @param allResults
	 * @return all available return FlightDTO of one Package
	 */
	List<FlightDTO> getFlightsFrom(int packageId, boolean allResults);




}
